#pragma once

#include <Standard.hxx>
#include <Standard_Type.hxx>
#include "SelectMgr_EntityOwner.hxx"
#include <SelectMgr_Filter.hxx>
#include "TopoDS_Face.hxx"
#include "TopoDS_Wire.hxx"

class Select_RoundSlotFilter;
DEFINE_STANDARD_HANDLE(Select_RoundSlotFilter, SelectMgr_Filter)


class Select_RoundSlotFilter : public SelectMgr_Filter
{
public:
	Select_RoundSlotFilter(TopTools_ListOfShape aFaceList);

	~Select_RoundSlotFilter();

	virtual Standard_Boolean IsOk(const Handle(SelectMgr_EntityOwner)& anobj) const;

	virtual Standard_Boolean ActsOn(const TopAbs_ShapeEnum aStandardMode) const ;

	DEFINE_STANDARD_RTTIEXT(Select_RoundSlotFilter, SelectMgr_Filter)

protected:

	TopoDS_Face FindLocatedFace(TopoDS_Wire theWire) const ;

	TopTools_ListOfShape myFaceList;

};

